package de.grosjohann.android.feuerwehr.type;

import java.io.Serializable;

import android.content.res.Resources;
import de.grosjohann.android.feuerwehr.R;
import de.grosjohann.android.feuerwehr.util.ColorUtil;

public enum WeatherWarningType implements IWarningType, Serializable {

  VORWARNUNG(0, ColorUtil.PREWARNING, R.string.VORWARNUNG),

  KEINE_WARNUNGEN(1, ColorUtil.LEVEL1, R.string.KEINE_WARNUNGEN),

  WETTERWARNUNGEN(2, ColorUtil.LEVEL2, R.string.WETTERWARNUNGEN),

  WARNUNGEN_VOR_MARKANTEM_WETTER(3, ColorUtil.LEVEL3, R.string.WARNUNGEN_VOR_MARKANTEM_WETTER),

  UNWETTERWARNUNGEN(4, ColorUtil.LEVEL4, R.string.UNWETTERWARNUNGEN),

  WARNUNGEN_VOR_EXTREMEM_UNWETTER(5, ColorUtil.LEVEL5, R.string.WARNUNGEN_VOR_EXTREMEM_UNWETTER);

  private int level = 2;
  private int color;
  private int resId;

  private WeatherWarningType(int newLevel, int newColor, int newResId) {
    level = newLevel;
    color = newColor;
    resId = newResId;
  }

  public int getLevel() {
    return level;
  }

  public int getColor() {
    return color;
  }

  public int getResId() {
    return resId;
  }

  @Override
  public String toString() {
    return Resources.getSystem().getString(resId);
  }

  public static WeatherWarningType valueOf(int level) {
    for (WeatherWarningType type : WeatherWarningType.values()) {
      if (type.level == level) {
        return type;
      }
    }
    throw new IllegalArgumentException("Status not supported: " + level);
  }

}
